# -*- coding: cp1252 -*-
from Tkinter import *

class Teclado_numerico():
    def __init__(self, master, valor_anterior=''):
        self.valor_anterior = valor_anterior
        self.terminar = None
        self.ventana = Toplevel(master)
        self.ventana.title('Teclado numérico')
        
        self.ingresados = StringVar('')
        self.pantalla = Label(self.ventana, textvariable = self.ingresados)
        self.pantalla.grid(row=0, column=0, columnspan=3)
        
        self.boton1 = Button(self.ventana, text='1', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '1'))
        self.boton1.grid(row=3, column=0)
        self.boton2 = Button(self.ventana, text='2', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '2'))
        self.boton2.grid(row=3, column=1)
        self.boton3 = Button(self.ventana, text='3', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '3'))
        self.boton3.grid(row=3, column=2)
        self.boton4 = Button(self.ventana, text='4', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '4'))
        self.boton4.grid(row=2, column=0)
        self.boton5 = Button(self.ventana, text='5', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '5'))
        self.boton5.grid(row=2, column=1)
        self.boton6 = Button(self.ventana, text='6', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '6'))
        self.boton6.grid(row=2, column=2)
        self.boton7 = Button(self.ventana, text='7', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '7'))
        self.boton7.grid(row=1, column=0)
        self.boton8 = Button(self.ventana, text='8', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '8'))
        self.boton8.grid(row=1, column=1)
        self.boton9 = Button(self.ventana, text='9', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '9'))
        self.boton9.grid(row=1, column=2)
        self.boton_guion = Button(self.ventana, text='-', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '-'))
        self.boton_guion.grid(row=4, column=0)
        self.boton0 = Button(self.ventana, text='0', width=6, command=lambda: self.ingresados.set(self.ingresados.get() + '0'))
        self.boton0.grid(row=4, column=1)
        self.boton_borrar = Button(self.ventana, text='<', width=6, command=lambda: self.ingresados.set(self.ingresados.get()[0:-1]))
        self.boton_borrar.grid(row=4, column=2)
        self.boton_aceptar = Button(self.ventana, text='Aceptar', width=6, command=self.aceptar)
        self.boton_aceptar.grid(row=5, column=1)
        self.boton_cancelar = Button(self.ventana, text='Cancelar', width=6, command=self.cancelar)
        self.boton_cancelar.grid(row=5, column=2)

        self.ventana.protocol("WM_DELETE_WINDOW", self.cancelar)

        self.ventana.wait_window()

    def aceptar(self):
        self.ventana.destroy()

    def cancelar(self):
        self.ingresados.set(self.valor_anterior)
        self.ventana.destroy()

def teclado_numerico(master, valor_anterior=''):
    teclado = Teclado_numerico(master, valor_anterior)
    return teclado.ingresados.get()

    
if __name__=='__main__':
    root = Tk()
    print teclado_numerico(root, 'Esta')
    print 'fin'
    
    root.mainloop()
